home *** CD-ROM | disk | FTP | other *** search
- VERSION 5.00
- Begin VB.Form frmTestSLnk
- BorderStyle = 4 'Fixed ToolWindow
- Caption = "Tests the IShellLink Typelib Interface."
- ClientHeight = 3780
- ClientLeft = 420
- ClientTop = 720
- ClientWidth = 9195
- LinkTopic = "Form1"
- MaxButton = 0 'False
- MinButton = 0 'False
- ScaleHeight = 3780
- ScaleWidth = 9195
- ShowInTaskbar = 0 'False
- Begin VB.TextBox txtProgramGroup
- Height = 285
- Left = 3120
- TabIndex = 20
- Top = 3300
- Width = 5865
- End
- Begin VB.CommandButton cmdCreateGroup
- Caption = "Create Group"
- Height = 375
- Left = 180
- TabIndex = 18
- Top = 1050
- Width = 1125
- End
- Begin VB.CommandButton cmdGetLinkInfo
- Caption = "GetLinkInfo"
- Height = 375
- Left = 180
- TabIndex = 17
- Top = 540
- Width = 1125
- End
- Begin VB.ComboBox cmbSysFolders
- Height = 315
- Left = 3120
- TabIndex = 16
- Top = 90
- Width = 5865
- End
- Begin VB.CommandButton cmdGetPath
- Caption = "GetSysPath"
- Height = 375
- Left = 1920
- TabIndex = 15
- Top = 60
- Width = 1125
- End
- Begin VB.TextBox txtShowCmd
- Height = 285
- Left = 3120
- TabIndex = 13
- Top = 2895
- Width = 585
- End
- Begin VB.TextBox txtCmdArgs
- Height = 285
- Left = 3120
- TabIndex = 11
- Top = 1740
- Width = 5865
- End
- Begin VB.TextBox txtIconIndex
- Height = 285
- Left = 3120
- TabIndex = 9
- Top = 2505
- Width = 585
- End
- Begin VB.TextBox txtIconFile
- Height = 285
- Left = 3120
- TabIndex = 7
- Top = 2130
- Width = 5865
- End
- Begin VB.TextBox txtWorkDir
- Height = 285
- Left = 3120
- TabIndex = 5
- Top = 1365
- Width = 5865
- End
- Begin VB.TextBox txtExeName
- Height = 285
- Left = 3120
- TabIndex = 3
- Top = 975
- Width = 5865
- End
- Begin VB.TextBox txtLinkName
- Height = 285
- Left = 3120
- TabIndex = 1
- Top = 600
- Width = 5865
- End
- Begin VB.CommandButton cmdCreateLink
- Caption = "CreateLink"
- Height = 345
- Left = 180
- TabIndex = 0
- Top = 60
- Width = 1155
- End
- Begin VB.Label Label1
- AutoSize = -1 'True
- Caption = "Start Menu Group:"
- Height = 195
- Index = 7
- Left = 1770
- TabIndex = 19
- Top = 3360
- Width = 1305
- End
- Begin VB.Label Label1
- AutoSize = -1 'True
- Caption = "Show Command:"
- Height = 195
- Index = 6
- Left = 1860
- TabIndex = 14
- Top = 2940
- Width = 1200
- End
- Begin VB.Label Label1
- AutoSize = -1 'True
- Caption = "Cmd Arguments:"
- Height = 195
- Index = 5
- Left = 1890
- TabIndex = 12
- Top = 1800
- Width = 1155
- End
- Begin VB.Label Label1
- AutoSize = -1 'True
- Caption = "Icon Index:"
- Height = 195
- Index = 4
- Left = 2265
- TabIndex = 10
- Top = 2565
- Width = 795
- End
- Begin VB.Label Label1
- AutoSize = -1 'True
- Caption = "Icon FileName:"
- Height = 195
- Index = 3
- Left = 1965
- TabIndex = 8
- Top = 2175
- Width = 1065
- End
- Begin VB.Label Label1
- AutoSize = -1 'True
- Caption = "Working Directory:"
- Height = 195
- Index = 2
- Left = 1740
- TabIndex = 6
- Top = 1425
- Width = 1320
- End
- Begin VB.Label Label1
- AutoSize = -1 'True
- Caption = "Exe Name:"
- Height = 195
- Index = 1
- Left = 2280
- TabIndex = 4
- Top = 1035
- Width = 780
- End
- Begin VB.Label Label1
- AutoSize = -1 'True
- Caption = "Link Name:"
- Height = 195
- Index = 0
- Left = 2250
- TabIndex = 2
- Top = 660
- Width = 810
- End
- Attribute VB_Name = "frmTestSLnk"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = False
- Attribute VB_PredeclaredId = True
- Attribute VB_Exposed = False
- Option Explicit
- '---------------------------------------------------------------
- Private Sub cmdCreateGroup_Click()
- '---------------------------------------------------------------
- MkDir txtProgramGroup.Text ' Create Start Menu Program Group...
- '---------------------------------------------------------------
- End Sub
- '---------------------------------------------------------------
- '---------------------------------------------------------------
- Private Sub cmdCreateLink_Click()
- '---------------------------------------------------------------
- Dim sLnk As cShellLink ' ShellLink Variable
- '---------------------------------------------------------------
- Set sLnk = New cShellLink ' Create ShellLink Instance
- sLnk.CreateShellLink txtLinkName.Text, _
- txtExeName.Text, _
- txtWorkDir.Text, _
- txtCmdArgs.Text, _
- txtIconFile.Text, _
- CLng(txtIconIndex.Text), _
- CLng(txtShowCmd.Text) ' Create a ShellLink (ShortCut)
- Set sLnk = Nothing ' Destroy object reference
- '---------------------------------------------------------------
- End Sub
- '---------------------------------------------------------------
- '---------------------------------------------------------------
- Private Sub cmdGetLinkInfo_Click()
- '---------------------------------------------------------------
- Dim sLnk As cShellLink ' ShellLink class variable
- Dim LnkFile As String ' Link file name
- Dim ExeFile As String ' Link - Exe file name
- Dim WorkDir As String ' - Working directory
- Dim ExeArgs As String ' - Command line arguments
- Dim IconFile As String ' - Icon File name
- Dim IconIdx As Long ' - Icon Index
- Dim ShowCmd As Long ' - Program start state...
- '---------------------------------------------------------------
- Set sLnk = New cShellLink ' Create new Explorer IShellLink Instance
- LnkFile = txtLinkName.Text ' Get link file name
- txtExeName.Text = "" ' Clear output variables...
- txtWorkDir.Text = ""
- txtCmdArgs.Text = ""
- txtIconFile.Text = ""
- txtIconIndex.Text = ""
- txtShowCmd.Text = ""
- sLnk.GetShellLinkInfo LnkFile, _
- ExeFile, _
- WorkDir, _
- ExeArgs, _
- IconFile, _
- IconIdx, _
- ShowCmd ' Get Info for shortcut file...
-
- txtLinkName.Text = LnkFile ' Display output...
- txtExeName.Text = ExeFile
- txtWorkDir.Text = WorkDir
- txtCmdArgs.Text = ExeArgs
- txtIconFile.Text = IconFile
- txtIconIndex.Text = Val(IconIdx)
- txtShowCmd.Text = Val(ShowCmd)
- Set sLnk = Nothing ' Destroy object reference...
- '---------------------------------------------------------------
- End Sub
- '---------------------------------------------------------------
- '---------------------------------------------------------------
- Private Sub cmdGetPath_Click()
- '---------------------------------------------------------------
- Dim rc As Long ' return code
- Dim sLnk As cShellLink ' ShellLink class object
- Dim sfPath As String ' System folder path
- Dim Id As Long ' ID of System folder...
- '---------------------------------------------------------------
- ' Create instance of Explorer's IShellLink Interface Base Class
- Set sLnk = New cShellLink
- Id = cmbSysFolders.ItemData(cmbSysFolders.ListIndex) ' Get ID from combo box
- If sLnk.GetSystemFolderPath(Me.hWnd, Id, sfPath) Then ' Get system folder path from id
- SetDefaults sfPath ' Update UI with new path
- End If
- Set sLnk = Nothing ' Destroy object reference
- '---------------------------------------------------------------
- End Sub
- '---------------------------------------------------------------
- '---------------------------------------------------------------
- Private Sub Form_Load()
- '---------------------------------------------------------------
- SetDefaults (App.Path & "\") ' Update UI with current application path
- With cmbSysFolders ' Add ID's for system folders to combo box...
- .AddItem "DESKTOP"
- .ItemData(.NewIndex) = 0
- .AddItem "PROGRAMS"
- .ItemData(.NewIndex) = &H2
- .AddItem "Controls"
- .ItemData(.NewIndex) = &H3
- .AddItem "Printers"
- .ItemData(.NewIndex) = &H4
- .AddItem "PERSONAL"
- .ItemData(.NewIndex) = &H5
- .AddItem "FAVORITES"
- .ItemData(.NewIndex) = &H6
- .AddItem "STARTUP"
- .ItemData(.NewIndex) = &H7
- .AddItem "RECENT"
- .ItemData(.NewIndex) = &H8
- .AddItem "SENDTO"
- .ItemData(.NewIndex) = &H9
- .AddItem "BITBUCKET: RECYCLE-BIN"
- .ItemData(.NewIndex) = &HA
- .AddItem "STARTMENU"
- .ItemData(.NewIndex) = &HB
- .AddItem "DESKTOPDIRECTORY"
- .ItemData(.NewIndex) = &H10
- .AddItem "DRIVES"
- .ItemData(.NewIndex) = &H11
- .AddItem "NETWORK"
- .ItemData(.NewIndex) = &H12
- .AddItem "NETHOOD"
- .ItemData(.NewIndex) = &H13
- .AddItem "Fonts"
- .ItemData(.NewIndex) = &H14
- .AddItem "TEMPLATES"
- .ItemData(.NewIndex) = &H15
- .AddItem "COMMON_STARTMENU"
- .ItemData(.NewIndex) = &H16
- .AddItem "COMMON_PROGRAMS"
- .ItemData(.NewIndex) = &H17
- .AddItem "COMMON_STARTUP"
- .ItemData(.NewIndex) = &H18
- .AddItem "COMMON_DESKTOPDIRECTORY"
- .ItemData(.NewIndex) = &H19
- .AddItem "APPDATA"
- .ItemData(.NewIndex) = &H1A
- .AddItem "PRINTHOOD"
- .ItemData(.NewIndex) = &H1B
-
- .ListIndex = 0
- End With
- '---------------------------------------------------------------
- End Sub
- '---------------------------------------------------------------
- '---------------------------------------------------------------
- Private Sub SetDefaults(pth As String)
- '---------------------------------------------------------------
- Dim AppPath As String ' Current Application path
- '---------------------------------------------------------------
- AppPath = App.Path ' Get current path
- If (Right$(AppPath, 1) <> "\") Then AppPath = AppPath & "\" ' Fix application path if necessary
- If (Right$(pth, 1) <> "\") Then pth = pth & "\" ' Fix path if necessary
- txtLinkName.Text = pth & "testlink.lnk" ' Create a full path name for link file
- txtExeName.Text = AppPath & App.EXEName & ".exe" ' Create a full path name for applicaton exe name
- txtWorkDir.Text = AppPath ' Set default working directory
- txtCmdArgs.Text = "-ARG1 -ARG2" ' Set default arguments
- txtIconFile.Text = txtExeName.Text ' Set default IconFile name to default exename
- txtIconIndex.Text = CStr(1) ' Set default Icon Index val
- txtShowCmd.Text = CStr(7) ' set default showcommand val
- txtProgramGroup.Text = pth & "Test Link Program Group" ' Set default Program group name
- '---------------------------------------------------------------
- End Sub
- '---------------------------------------------------------------
-